import React, { createContext, useState, useContext, useEffect } from 'react';

// 创建行程上下文
const CourseContext = createContext();  // 这是内部使用的上下文对象，不需要导出

// 自定义 Hook，供外部组件使用，用来获取行程信息
export const useCourse = () => {
  return useContext(CourseContext);  // 使用 useContext 来获取上下文中的行程信息
};

// 行程提供者组件，用来包裹整个应用
export const CourseProvider = ({ children }) => {
  const [courses, setCourses] = useState([]);

  // 从 localStorage 加载行程
  useEffect(() => {
    const savedCourses = JSON.parse(localStorage.getItem('courses')) || [];
    setCourses(savedCourses);
  }, []);

  // 保存行程到 localStorage
  useEffect(() => {
    localStorage.setItem('courses', JSON.stringify(courses));
  }, [courses]);

  const addCourse = (newCourse) => {
    setCourses((prevCourses) => [...prevCourses, newCourse]);
  };

  return (
    <CourseContext.Provider value={{ courses, addCourse }}>
      {children}
    </CourseContext.Provider>
  );
};
